﻿using Credinka.Ayni.SEA.EN;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Credinka.Ayni.SEA.AD
{
    public class adGrupoCargo : adGeneral
    {
        public adGrupoCargo(SqlConnection con)
        {
            conexionGeneral = con;
        }

        public int fRegistrar(enGrupoCargo poenGrupoCargo)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sGEN_RegistrarGrupoCargo", conexionGeneral);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piIdGrupo", SqlDbType.Int).Value = poenGrupoCargo.IdGrupo;
            cmd.Parameters.Add("@piCodigoCargo", SqlDbType.Int).Value = poenGrupoCargo.CodigoCargo;
            cmd.Parameters.Add("@piCodigoEstado", SqlDbType.Int).Value = poenGrupoCargo.CodigoEstado;
            cmd.Parameters.Add("@pivAudNombreUsuarioCreacion", SqlDbType.VarChar).Value = poenGrupoCargo.AudNombreUsuarioCreacion;
            cmd.Parameters.Add("@pvAudIpCreacion", SqlDbType.VarChar).Value = poenGrupoCargo.AudIPCreacion;
            cmd.Parameters.Add("@pvAudMacCreacion", SqlDbType.VarChar).Value = poenGrupoCargo.AudMacCreacion;
            N = cmd.ExecuteNonQuery();
            return N;
        }

        public List<enGrupoCargo> fListarCargo(int IdGrupo)
        {
            List<enGrupoCargo> loenGrupoCargo = null;
            enGrupoCargo oenGrupoCargo;
            SqlCommand cmd = new SqlCommand("sGEN_ListarGrupoCargo", conexionGeneral);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@pidGrupo", SqlDbType.Int).Value = IdGrupo;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdGrupoCargo = drd.GetOrdinal("iIdGrupoCargo");
                int pos_IdGrupo = drd.GetOrdinal("iIdGrupo");
                int pos_CodigoCargo = drd.GetOrdinal("iCodigoCargo");
                int pos_DescripcionCorta = drd.GetOrdinal("descripcionCorta");
                int pos_Descripcion = drd.GetOrdinal("descripcion");
                loenGrupoCargo = new List<enGrupoCargo>();

                while (drd.Read())
                {
                    oenGrupoCargo = new enGrupoCargo();
                    oenGrupoCargo.IdGrupoCargo = (drd.IsDBNull(pos_IdGrupoCargo) ? 0 : drd.GetInt32(pos_IdGrupoCargo));
                    oenGrupoCargo.IdGrupo = (drd.IsDBNull(pos_IdGrupo) ? 0 : drd.GetInt32(pos_IdGrupo));
                    oenGrupoCargo.CodigoCargo= (drd.IsDBNull(pos_CodigoCargo) ? 0 : drd.GetInt32(pos_CodigoCargo));
                    oenGrupoCargo.entDescripcion = new enDescripcion();
                    oenGrupoCargo.entDescripcion.DescripcionCorta = (drd.IsDBNull(pos_DescripcionCorta) ? "" : drd.GetString(pos_DescripcionCorta));
                    oenGrupoCargo.entDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    loenGrupoCargo.Add(oenGrupoCargo);
                }
            }
            return (loenGrupoCargo);
        }
    }
}
